Systems and methods for providing multi-directional visual browsing

ABSTRACT

Systems and methods for multi-directional visual browsing on an electronic device are described. In example embodiments, a primary result and a peripheral result associated with a user of a client device are determined. A display layout based on attributes associated with the primary result and the peripheral result is generated. The display layout is then formatted into rendering and display instructions, which will cause a client device to render the display layout. The rendering and display instructions are transmitted to the client device.

RELATED APPLICATIONS

The present application claims the priority benefit of U.S. ProvisionalPatent Application No. 61/155,104, filed Feb. 24, 2009 and entitled“Systems and Methods for Multi-Direction Visual Browsing on anElectronic Device.” The content of the aforementioned application isincorporated herein by reference.

FIELD

The present disclosure relates generally to information display, and ina specific example embodiment, to multi-directional visual browsing onan electronic device.

BACKGROUND

The ubiquitous presence of networked computers and mobile devices, andthe growing use of databases, web logs, and email have resulted in theaccumulation of vast quantities of information. Many users now haveaccess to this information via search engines and a bewildering array ofweb sites. Processing this information in a manner that is user-friendlyand efficient creates a number of challenges and complexities.

BRIEF DESCRIPTION OF DRAWINGS

Various ones of the appended drawings merely illustrate exampleembodiments of the present invention and cannot be considered aslimiting its scope.

FIG. 1 is a block diagram illustrating an example embodiment of anetwork architecture of a system used to allow multi-directional visualbrowsing.

FIG. 2 is a block diagram illustrating an example embodiment of apublication system.

FIG. 3 is a block diagram illustrating an example embodiment of anavigation engine.

FIG. 4 is a block diagram illustrating an example embodiment of adisplay engine.

FIG. 5 is a flowchart illustrating a method for allowingmulti-directional browsing.

FIG. 6 is a flowchart illustrating a method for determining peripheralresults.

FIG. 7 is a flowchart illustrating a method for generating a displaylayout.

FIG. 8 is an example of an electronic device capable of illustrating amulti-directional visual browser according to an example embodiment.

FIG. 9 is a simplified block diagram of a machine in an example form ofa computing system within which a set of instructions for causing themachine to perform any one or more of the methodologies discussed hereinmay be executed.

DETAILED DESCRIPTION

The description that follows includes systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative embodiments of the present invention. In thefollowing description, for purposes of explanation, numerous specificdetails are set forth in order to provide an understanding of variousembodiments of the inventive subject matter. It will be evident,however, to those skilled in the art that embodiments of the inventivesubject matter may be practiced without these specific details. Ingeneral, well-known instruction instances, protocols, structures, andtechniques have not been shown in detail.

As used herein, the term “or” may be construed in either an inclusive orexclusive sense. Additionally, although various example embodimentsdiscussed below focus on a network-based search and/or publicationenvironment, the embodiments are given merely for clarity in disclosure.Thus, any type of electronic search system and method, including varioussystem architectures, may employ various embodiments of themulti-dimensional visual browsing system and method described herein andis considered as being within a scope of example embodiments. Each of avariety of example embodiments is discussed in detail, below.

Example embodiments described herein provide systems and methods forallowing multi-directional visual browsing on an electronic device.According to an example embodiment, a primary result and a peripheralresult associated with a user of a client device are determined. Theprimary result may be a list of one or more items or categories that area result of a search or review of an account associated with the user.The peripheral result may be a list of one or more items or categoriesthat are related to the primary results. For example, the peripheralresult may comprise accessories, upgrades, similar items, or competitoritems of the primary result.

A display layout based on attributes associated with the primary resultand the peripheral result is generated. The display layout may positionthe primary result in a predetermined location (e.g., at a center of thedisplay layout). The peripheral results may then be positioned aroundthe primary result (e.g., in two-dimension or three-dimension). Thedisplay layout is then formatted into rendering and displayinstructions, which will cause a client device to render the displaylayout. The rendering and display instructions are transmitted to theclient device.

With reference to FIG. 1, an example embodiment of a high-levelclient-server-based network architecture 100 to allow multi-directionalvisual browsing is shown. A networked system 102, in an example form ofa network-server-side functionality, is coupled via a network 104 (e.g.,the Internet or Wide Area Network (WAN)) to one or more clients. FIG. 1illustrates, for example, a web client 106 operating via a browser(e.g., such as the Internet Explorer® browser developed by Microsoft®Corporation of Redmond, Washington State) and a programmatic client 108executing on, respectively, client devices 110 and 112. The clientdevices 110 and 112 may include, for example, a mobile phone, a personaldigital assistant (PDA), a gaming unit, a portable computing unit, orany other device capable of being communicatively coupled to the network104.

The network 104 over which the networked system 102 and the clientdevices 110 and 112 interact may be a Global System for MobileCommunications (GSM) network, an Internet Protocol (IP) network, aWireless Application Protocol (WAP) network, a WiFi network, or a IEEE802.11 standards network as well as various combinations thereof. Otherconventional and/or later developed wired and wireless networks may alsobe used.

In some embodiments, the client device 110 or 112 may capture andtransmit an image of an item of interest to the networked system 102.The image may be captured by a camera built into the client device 110or 112 or by a digital camera, which is configurable to download itsstored images to the client device 110 or 112. In some cases, the imagemay be a representation of an item of interest (e.g., barcode for theitem). Alternatively, the user may locate the image through, forexample, the Internet or other image repositories (e.g., using thebrowser). Additionally, the client device 110 may capture a verbaldescription of the item of interest. Images (both captured and obtainedfrom other sources) and verbal descriptions are herein collectivelyreferred to as image data.

An Application Program Interface (API) server 114 and a web server 116are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 118. The application servers 118host a publication system 120 and a payment system 122, each of whichmay comprise one or more modules, applications, or engines, and each ofwhich may be embodied as hardware, software, firmware, or anycombination thereof. The application servers 118 are, in turn, coupledto one or more database servers 124 facilitating access to one or moreinformation storage databases or repositories 126.

The databases 126 includes a collection of data comprising item images,transaction data, and item attribute information. The item images may beimages used in an item listing to show a picture of the item. The itemimages may also be used for comparison with the image data received fromthe client device 110 or 112. The transaction data may includeinformation regarding transactions conducted on the networked system102. The transactional data may include, by way of example, pricinginformation for an item during a time period. The item attributeinformation may include information associate with an item including,for example, an image, title, subtitle, category, sub-category, relateditem listings, average price, quantities of the item currentlyavailable, and any other data that may describe and distinguish the itemfrom other items in the database 126 or other items offered using thenetworked system 102.

The publication system 120 provides a number of publication andmarketplace functions and services to users that access the networkedsystem 102. The publication system 120 is discussed in more detail inconnection with FIG. 2.

The payment system 122 provides a number of payment services andfunctions to users. The payment system 122 allows users to accumulatevalue (e.g., in a commercial currency, such as the U.S. dollar, or aproprietary currency, such as “points”) in accounts, and then later toredeem the accumulated value for products (e.g., goods or services) thatare made available via the publication system 120. The payment system122 also facilitates payments from a payment mechanism (e.g., a bankaccount or credit card) for purchases of items via the network-basedmarketplace. While the publication system 120 and the payment system 122are shown in FIG. 1 to both form part of the networked system 102, itwill be appreciated that, in alternative embodiments, the payment system122 may form part of a payment service that is separate and distinctfrom the networked system 102.

FIG. 1 also illustrates a third party module 128, executing on a thirdparty server 130, as having programmatic access through the network 104to the networked, system 102 via the programmatic interface provided bythe API server 114. For example, the third party module 128 may,utilizing information retrieved from the networked system 102, supportone or more features or functions on a website (not shown) hosted by thethird party. The third party website may, for example, provide one ormore promotional, marketplace, or payment functions that are supportedby the relevant applications of the networked system 102.

While the example network architecture 100 of FIG. 1 employs aclient-server architecture, a skilled artisan will recognize that thepresent disclosure is not limited to such an architecture. The examplenetwork architecture 100 can equally well find application in, forexample, a distributed or peer-to-peer architecture system. Thepublication system 120 and payment system 122 may also be implemented asstandalone systems or standalone software programs operating underseparate hardware platforms, which do not necessarily have networkingcapabilities.

Referring now to FIG. 2, an example block diagram illustrating multiplecomponents that, in one example embodiment, are provided within thepublication system 120 of the networked system 102 (see FIG. 1) isshown. The publication system 120 may be hosted on dedicated or sharedserver machines (not shown) that are communicatively coupled to enablecommunications between the server machines. The multiple componentsthemselves are communicatively coupled (e.g., via appropriateinterfaces), either directly or indirectly, to each other and to variousdata sources, to allow information to be passed between the componentsor to allow the components to share and access common data. Furthermore,the components may access the one or more database(s) 126 via the one ormore database servers 124, both shown in FIG. 1.

The networked system 102 provides a number of publishing, listing, andprice-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale, a buyer can expressinterest in or indicate a desire to purchase such goods or services, anda price can be set for a transaction pertaining to the goods orservices. To this end, the publication system 120 may comprise at leastone publication engine 202 and one or more auction engines 204 thatsupport auction-format listing and price setting mechanisms (e.g.,English, Dutch, Chinese, Double, Reverse auctions, etc.). The variousauction engines 204 also provide a number of features in support ofthese auction-format listings, such as a reserve price feature whereby aseller may specify a reserve price in connection with a listing and aproxy-bidding feature whereby a bidder may invoke automated proxybidding.

A pricing engine 206 supports various price listing formats. One suchformat is a fixed-price listing format (e.g., the traditional classifiedadvertisement-type listing or a catalogue listing). Another formatcomprises a buyout-type listing. Buyout-type listings (e.g., theBuy-It-Now (BIN) technology developed by eBay Inc., of San Jose, Calif.)may be offered in conjunction with auction-format listings and allow abuyer to purchase goods or services, which are also being offered forsale via an auction, for a fixed-price that is typically higher than astarting price of an auction for an item.

A store engine 208 allows a seller to group listings within a “virtual”store, which may be branded and otherwise personalized by and for theseller. Such a virtual store may also offer promotions, incentives, andfeatures that are specific and personalized to the seller. In oneexample, the seller may offer a plurality of items as Buy-It-Now itemsin the virtual store, offer a plurality of items for auction, or acombination of both.

A reputation engine 210 allows users that transact, utilizing thenetworked system 102, to establish, build, and maintain reputations.These reputations may be made available and published to potentialtrading partners. Because the networked system 102 supportsperson-to-person trading between unknown entities, users may otherwisehave no history or other reference information whereby thetrustworthiness and credibility of potential trading partners may beassessed. The reputation engine 210 allows a user, for example throughfeedback provided by one or more other transaction partners, toestablish a reputation within the networked system 102 over time. Otherpotential trading partners may then reference the reputation forpurposes of assessing credibility and trustworthiness.

Navigation of the network-based marketplace may be facilitated by anavigation engine 212. For example, a search module of the navigationengine 212 enables keyword searches of item listings published via thepublication system 120. In a further example, a browser module of thenavigation engine 212 allows users to browse various category,catalogue, or inventory data structures according to which listings maybe classified within the publication system 120. Furthermore, thenavigation engine 212 in conjunction with the display engine 224provides data and instructions to allow multi-directional visualbrowsing on the client device (e.g., client device 110). Various othernavigation applications within the navigation engine 212 may be providedto supplement the searching and browsing applications. The navigationengine 212 is discussed in more detail in connection with FIG. 3.

In order to make listings available via the networked system 102 asvisually informing and attractive as possible, the publication system120 may include an imaging engine 214 that enables users to uploadimages for inclusion within listings and to incorporate images withinviewed listings. The imaging engine 214 also receives image data from auser and utilizes the image data to identify an item depicted ordescribed by the image data.

A listing creation engine 216 allows sellers to conveniently authorlistings pertaining to goods or services that sellers wish to transactvia the networked system 102, while a listing management engine 218allows sellers to manage such listings. Specifically, where a particularseller has authored or published a large number of listings, themanagement of such listings may present a challenge. The listingmanagement engine 218 provides a number of features (e.g.,auto-relisting, inventory level monitors, etc.) to assist the seller inmanaging such listings.

A post-listing management engine 220 also assists sellers with a numberof activities that typically occur post-listing. For example, uponcompletion of an auction facilitated by the one or more auction engines204, a seller may wish to leave feedback regarding a particular buyer.To this end, the post-listing management engine 220 provides aninterface to the reputation engine 210 allowing the seller toconveniently provide feedback regarding multiple buyers to thereputation engine 210.

A messaging engine 222 is responsible for the generation and delivery ofmessages to users of the networked system 102. Such messages include,for example, advising users regarding the status of listings and bestoffers (e.g., providing an acceptance notice to a buyer who made a bestoffer to a seller). The messaging engine 222 may utilize any one of anumber of message delivery networks and platforms to deliver messages tousers. For example, the messaging engine 222 may deliver electronic mail(e-mail), an instant message (IM), a Short Message Service (SMS), text,facsimile, or voice (e.g., Voice over IP (VoIP)) messages via wirednetworks (e.g., the Internet), a Plain Old Telephone Service (POTS)network, or wireless networks (e.g., mobile, cellular, WiFi, WiMAX).

A display engine 224 manages data which allows multi-directional visualbrowsing on a client device. In example embodiments, the display engine224 obtains and formats data for visual browsing and transmits theformatted data to the requesting client device. The display engine 224will be discussed in more detail in connection with FIG. 4.

Although the various components of the publication system 120 have beendefined in terms of a variety of individual modules and engines, askilled artisan will recognize that many of the items can be combined ororganized in other ways. Furthermore, not all components of thepublication system 120 have been included in FIG. 2. In general,components, protocols, structures, and techniques not directly relatedto functions of example embodiments (e.g., dispute resolution engine,loyalty promotion engine, personalization engines, etc.) have not beenshown or discussed in detail. The description given herein simplyprovides a variety of example embodiments to aid the reader in anunderstanding of the systems and methods used herein. While thepublication system 120 is described in a marketplace embodiment, itshould be noted that the publication system 120 may be used in anysearch environment.

Application of Embodiments of the Multi-Directional Visual BrowsingPlatform into the Example Network Architecture

Referring now to FIG. 3, an example diagram of the navigation engine 212is shown. In one embodiment, the navigation engine 212 facilitatesnavigation of a network-based marketplace. In example embodiment, thenavigation engine 212 comprises a directional input module 302, a searchmodule 304, a browser module 306, and a refinement module 308.Alternative embodiments may comprise further components or modules notdirectly related to example embodiments of the multi-directional visualbrowsing system, and thus are not shown or discussed. Furthermore, someof the components of the navigation engine 212 may be located elsewhere(e.g., in the display engine 224) or combined into a single module.

The directional input module 302 receives navigational inputs from theclient device and triggers operations of the search module 304 or therefinement module 308 in response. The navigational inputs may comprise,for example, a scrolling action in a particular. direction (e.g., up,down, left, right, or diagonally) on the client device. The navigationalinputs may also include a tap selection (e.g., dual touch), whereby theuser of the client device selects a representation of an item orcategory, or the user drills down into a lower level of a multi-leveldisplay.

The search module 304 performs a search for a primary result. Theprimary result is a main result that is a focus of the user's search.For example, if the user is searching for a Sony® Playstation 2 console,the primary result may be a Sony® Playstation 2 category (e.g., Sony®Playstation 2 consoles). In some embodiments, the search module 304enables keyword searches (e.g., “Sony Playstation 2”) of listingspublished via the publication system 120. Additionally, the user'saccount may indicate one or more favorite merchants or past purchaseditems. In one embodiment, the search module 304 may determine itemsassociated with the one or more favorite merchants and uses the resultsas the primary results. In another embodiment, the search module 304 maydetermine items similar to previously purchased items (e.g., accessoriesor upgraded versions) and use the results as the primary results.

The browser module 306 allows users to browse various category,catalogue, or inventory data structures according to which item listingsmay be classified within the publication system 120. In this example,browser module 306 allows users to browse or navigate through variouscategories of the product infrastructure to arrive at a product categoryor item (e.g., electronics→entertainment→gaming→game consoles Sony®Playstation 2). In some embodiments, the functions of the browser modulemay be incorporated into the search module 304.

In other embodiments, image data (e.g., an image captured by a camera ora verbal description of an item) received from the client device may beused to search for similar items as that depicted by the image data. Acomponent of the networked system 102 (e.g., the search module 404 or amodule of the imaging engine 214) compares the image data to a catalogof items. In one embodiment, the catalog may comprise item listings. Thecatalog may be organized as a matrix of data including a plurality ofattributes associated with each item. For example, each item in thecatalog may comprise an image, title, subtitle, category, sub-category,related item listings, average price, quantities of the item currentlyavailable, and any other data that may describe and distinguish the itemfrom other items in the catalog. In one embodiment, the catalog may bestored in the database 126.

The refinement module 308 performs analysis to determine peripheralresults and a next set of results (e.g., both primary and peripheral)for presentation in a multi-direction visual browser. In exampleembodiments, the refinement module 308 receives the primary result fromthe search module 304 and determines attribute information (e.g.,associated categories, brand, model number) associated with the primaryresult. Using the attribute information, related items (e.g., havingsimilar attributes) are determined. For example, if the primary resultis Sony® Playstation 2, then the related items may include accessoriesfor the Sony® Playstation 2 (e.g., game controllers, games), otherversions of the Sony® Playstation 2 (e.g., Sony® Playstation 3), orcompetitor brands (e.g., Nintendo® Wii). These related items comprisethe peripheral result.

When a navigation input is received by the directional input module 302,the refinement module 308 will refine the results. Thus, a directionalinput in a direction towards games for the Sony® Playstation 2 willchange the primary result to games for the Sony® Playstation 2 andperipheral results may include the Sony® Playstation 2 consoles, gamesfor other brands, or individual game titles.

Referring now to FIG. 4, an example diagram of the display engine 224 isshown. The display engine 224, in conjunction with the navigation engine212, provides mechanisms for enabling a client device to providemulti-direction visual browsing. The display engine 224 determinesproper placement of components on a multi-directional visual browser andgenerates instructions to the client device to enable the rendering ofthe multi-direction visual browser at the client device. In exampleembodiments, the display engine 224 comprises a data module 402, apreference module 404, a layout module 406, and a format module 408.Alternative embodiments may comprise further components or modules notdirectly related to example embodiments of the multi-directional visualbrowsing system, and thus are not shown or discussed. Furthermore, someof the components of the display engine 224 may be located elsewhere(e.g., in the navigation engine 212) or combined into a single module.

The data module 402 receives and accesses data used to providemulti-directional visual browsing. In example embodiments, the datamodule 402 receives an initial request from the client device formulti-directional visual browsing. The data module 402 may accessvarious databases (e.g., databases 126) to determine attributes ofvarious items to be displayed in a multi-directional visual display. Thedata module 402 also obtains images of the associate items for display.

The preference module 404 determines preferences associated with theuser or client device that is requesting multi-directional visualbrowsing. In one embodiment, a pattern of usage is tracked and used bythe preference module 404 to determine preferences. The preferences mayinclude display preferences (e.g., size of images or speed of navigationon the device) or result preferences (e.g., previously purchased itemmay be a primary result used to determine peripheral results as will bediscussed further below).

The layout module 406 determines a display layout including both theprimary and peripheral results. In one embodiment, the primary result ispositioned centered on the display layout. In other embodiments, theprimary result may be positioned in other locations of the displaylayout (e.g., to the right or left of center or in a corner of thedisplay layout). Continuing with the Sony® Playstation 2 consoleexample, a Sony® Playstation 2 console category may be positioned in apredetermined location (e.g., center) of the layout. The peripheralresults are then displayed surrounding the primary result based onattributes associated with the peripheral results. For example, gamecontrollers and games (e.g., accessories) may be positioned to the leftand right of the console, respectively. Individual models of consolesavailable via the network-based marketplace may be positioned below theconsole category in one embodiment. In an alternative embodiment, theindividual models of consoles may be positioned in a drill down from theconsole category (e.g., the primary result) or the individual models maybe positioned in the center of the display layout. Other versions of theSony® Playstation 2 (e.g., Sony® Playstation 3) may be locateddiagonally up from the centered primary result. In one example,competitor products (e.g, Nintendo® Wii) may be positioned directlyabove the centered primary result. While one example of a display layoutis described herein, it is understood that alternative embodiments mayutilize other layout formats and positions for peripheral results (e.g.,related items).

In some embodiments, a navigation control display may be provided overthe multi-directional visual browser to illustrate possible directionsfor multi-directional visual browsing. For example, graphical arrows maybe drawn to indicate possible browsing/navigation directions. This maybe useful when, for example, one direction of browsing is not available.

The format module 408 formats the display layout for transmission to theclient device. In example embodiments, the format module 408 generatesrendering and display instructions comprising the display layout. Therendering and display instructions enables a multi-direction visualbrowser to be rendered at the client device. In some embodiments, theformat module 408 may access (or work with the preference module 404 toaccess) user preferences in order to customize the display layout to theuser. In one embodiment, the format module 408 transmits the renderingand display instructions to the client device.

It should be noted that some of the modules of the display engine 224may be located at the client device. For example, a version of thelayout module 406 and the format module 408 may be located at the clientdevice. Thus, the client device may receive data from a search result,determine a display layout for the data, and format the display layoutfor display.

FIG. 5 is a flowchart illustrating a method 500 for allowingmulti-directional browsing. At operation 502, a primary result isdetermined. In example embodiments, the search module 404 performs asearch for a primary result. The primary result may be a main resultthat is a focus of the user's search. In some embodiments, the primaryresult may be a result of a keyword search, an image data search, ortraversal of the product infrastructure. In other embodiments, theprimary result may be based on one or more lists associated with anaccount of a user at the client device (e.g., “watching” list, favoriteseller list, past purchased items list).

At operation 504, a peripheral result is determined. The peripheralresults comprise items or categories that are related to the primaryresult. Operation 504 will be discussed in more detail in connectionwith FIG. 6.

A display layout is determined at operation 506. The display layoutcomprises a guide for displaying the primary and peripheral results atthe client device. Operation 506 will be discussed in further detail inFIG. 7.

At operation 508, the display layout is formatted into rendering anddisplay instructions. In example embodiments, the format module 408generates the rendering and display instruction using the display layoutreceived from the layout module 406. The rendering and displayinstructions enables generation of a multi-directional visual browser atthe client device. The rendering and display instruction may alsoinclude navigation control instructions for rendering and displayingnavigation controls. For example, the navigation control display may bea graphical overlay, highlighted buttons on the peripheral of a display,or controls integrated into the display. Once generated, the renderingand display instructions are transmitted to the client device atoperation 510.

Subsequently, at operation 512, a determination is made as to whether anavigation input is received from the client device. A navigation inputis a result of a user physically indicating on the multi-directionalvisual browser a navigation input. In an example embodiment, thenavigational input, on, for example, a touch screen, may include a swipe(e.g., up, down, left, right, or diagonally), press and hold, dualtouch, multi-touch, pinch, or other inputs. In embodiments where thenavigational input is a tap of dual touch selection, a result of the tapselection may be a drill down on the selected representation. Forexample, if the selection is of a category of goods (e.g., Sony®Playstation 2), the drill down may result in individual items within thecategory (e.g., Sony® Playstation 2 consoles) being offered for auctionor sale.

In yet another embodiment, the navigational input may be received from ajoystick, a keyboard, a mouse, an eye movement detection camera system,gesture input, or other inputs. In further embodiments, tilting of theclient device may accelerate scrolling along a tilted direction. If anavigation input is received, then the method returns to operation 502where a new primary result is determined. The new primary result isbased on the item or category selected (or in the direction of thenavigation input) based on the navigation input.

FIG. 6 is a flowchart illustrating a method for determining a peripheralresult (e.g., operation 504). At operation 602, attributes for theprimary result are determined. In example embodiments, the refinementmodule 308 receives the primary result and determines attributes (e.g.,associated categories, brand, model number, average price, or any otherinformation that may distinguish an item or category form other items orcategory) associated with the primary result.

Using the attribute information for the primary result, related items orcategories of items (e.g., having similar attributes) are determined atoperation 604. These related items or categories comprise the peripheralresult.

FIG. 7 is a flowchart illustrating a method for generating a displaylayout (e.g., operation 506). In example embodiments, the display layoutis generated by the layout module 306. The display layout may beperformed at the publication system 120 or at the client device. Atoperation 702, the primary result is positioned at a predeterminedlocation. In one embodiment, the predetermined location is at a centerof the display layout. Alternative embodiments, may locate thepredetermined location anywhere on the display layout. The item(s),category, or categories of the primary result will be visuallyrepresented at the predetermined location once rendered at the clientdevice.

Navigation direction constraints are determined at operation 704. Thenavigation direction constraints provide guidance as to whereitems/categories should be located. In a two-dimensional embodiment, thenavigation direction constraints may be provided in any number ofdirections in a radial form from a central position. In yet anotherembodiment, navigation directions may be enabled for a three-dimensionalplane. In this embodiment, a category may be drilled down into so as toarrive at a second level or plane populated with a plurality of itemswithin the category. Further levels or planes may be provided. In yetanother embodiment, the navigational direction may include a 3-D planehaving topographical features based on attributes of the device.

For example, the navigation direction constraint may indicated thataccessories should be positioned to the left of the predeterminedlocation, while another navigation direction constraint may indicatethat related versions of the primary result (e.g., upgraded version)should be positioned diagonally to a top right of the predeterminedlocation and similar competitor products should be positioned above thepredetermined location.

The navigation direction constraints may be generated by the layoutmodule 406. Alternatively, generic navigation direction constraints maybe stored in a database and the layout module 406 accesses the storednavigation direction constraints and applies the primary resultattributes to determine the proper navigation direction constraints tobe used in a current display layout.

Once the navigation direction constraints are determined, the peripheralresults are positioned on the display layout based on the navigationdirection constraints at operation 706. For example, a Sony® Playstation2 console category (e.g., primary result) may be positioned in a centeror predetermined location of the display layout. Game controllers andgames (e.g., accessories) may be positioned to the left and right of theconsole, respectively. Individual models of consoles available via thenetwork-based marketplace or publication system may be positioned belowthe console category in one embodiment. In an alternative embodiment,the individual models of consoles may be positioned in a drill down fromthe console category (e.g., the primary result) or the individual modelsmay be positioned in the center of the layout. Other versions of theSony® Playstation 2 (e.g., Sony® Playstation 3) may be locateddiagonally up from the centered primary result In the example,competitor brands (e.g, Nintendo® Wii) may be positioned directly abovethe centered primary result.

In operation 708, a navigation control display is provided. In someembodiments, the navigation control display may be provided over thedisplay layout on the multi-directional visual browser to illustratepossible directions for multi-directional visual browsing. This may beuseful when, for example, one direction of browsing is not available. Itshould be noted that operation 708 is optional.

FIG. 8 is an example of an electronic device or client device 800illustrating a multi-directional visual browser 802 according to anexample embodiment. As shown, the multi-directional visual browser 802is illustrated in a grid format comprising a plurality of image blocks804. Each image block 804 visually represents an item or category. Inexample embodiments, an image of the item or category is included ineach image block 804. Information regarding the item or category mayalso be provided on the image block 804.

While the embodiment of FIG. 8 is arranged in the grid format, thearrangement may be a circular formation, a triangular formation, or anyother shape formation. The multi-dimensional visual browser may, inalternative embodiments, be topographically populated, populated bylayers of attributes, or be three-dimensional. By example, anotherembodiment may arrange the items according to an importance or hierarchyprovided to the items by user preferences or popularity.

A primary result is display at a predetermined location. Thepredetermined location may comprise one or more image blocks 804 of themulti-directional visual browser. In one embodiment, the predeterminedlocation is located at the center of the multi-directional visualbrowser. Alternatively, the predetermined location may be a corner, top,bottom, right, or left position of the multi-directional visual browser.

While not shown in FIG. 8, navigational controls may be displayed. Invarious embodiments, the navigation controls may be a graphical overlayover the image blocks 804 (e.g., at edges of the multi-directionalvisual browser 802), highlighted buttons on the periphery of a display,or controls integrated into the display.

Modules, Components, and Logic

Certain embodiments described herein may be implemented as logic or anumber of modules, engines, components, or mechanisms. A module, engine,logic, component, or mechanism (collectively referred to as a “module”)may be a tangible unit capable of performing certain operations andconfigured or arranged in a certain manner. In certain exampleembodiments, one or more computer systems (e.g., a standalone, client,or server computer system) or one or more components of a computersystem (e.g., a processor or a group of processors) may be configured bysoftware (e.g., an application or application portion) or firmware (notethat software and firmware can generally be used interchangeably hereinas is known by a skilled artisan) as a module that operates to performcertain operations described herein.

In various embodiments, a module may be implemented mechanically orelectronically. For example, a module may comprise dedicated circuitryor logic that is permanently configured (e.g., within a special-purposeprocessor, application specific integrated circuit (ASIC), or array) toperform certain operations. A module may also comprise programmablelogic or circuitry (e.g., as encompassed within a general-purposeprocessor or other programmable processor) that is temporarilyconfigured by software or firmware to perform certain operations. Itwill be appreciated that a decision to implement a module mechanically,in the dedicated and permanently configured circuitry, or in temporarilyconfigured circuitry (e.g., configured by software) may be driven by,for example, cost, time, energy-usage, and package size considerations.

Accordingly, the term module should be understood to encompass atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), or temporarily configured(e.g., programmed) to operate in a certain manner or to perform certainoperations described herein. Considering embodiments in which modules orcomponents are temporarily configured (e.g., programmed), each of themodules or components need not be configured or instantiated at any oneinstance in time. For example, where the modules or components comprisea general-purpose processor configured using software, thegeneral-purpose processor may be configured as respective differentmodules at different times. Software may accordingly configure theprocessor to constitute a particular module at one instance of time andto constitute a different module at a different instance of time.

Modules can provide information to, and receive information from, othermodules. Accordingly, the described modules may be regarded as beingcommunicatively coupled. Where multiples of such modules existcontemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe modules. In embodiments in which multiple modules are configured orinstantiated at different times, communications between such modules maybe achieved, for example, through the storage and retrieval ofinformation in memory structures to which the multiple modules haveaccess. For example, one module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further module may then, at a later time,access the memory device to retrieve and process the stored output.Modules may also initiate communications with input or output devicesand can operate on a resource (e.g., a collection of information).

Example Machine Architecture and Machine-Readable Medium

With reference to FIG. 9, an example embodiment extends to a machine inthe example form of a computer system 900 within which instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein may be executed. In alternative example embodiments,the machine operates as a standalone device or may be connected (e.g.,networked) to other machines. In a networked deployment, the machine mayoperate in the capacity of a server or a client machine in server-clientnetwork environment, or as a peer machine in a peer-to-peer (ordistributed) network environment. The machine may be a personal computer(PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant(PDA), a cellular telephone, a web appliance, a network router, a switchor bridge, or any machine capable of executing instructions (sequentialor otherwise) that specify actions to be taken by that machine. Further,while only a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The example computer system 900 may include a processor 902 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 904 and a static memory 906, which communicate witheach other via a bus 908. The computer system 900 may further include avideo display unit 910 (e.g., a liquid crystal display (LCD) or acathode ray tube (CRT)). In example embodiments, the computer system 900also includes one or more of an alpha-numeric input device 912 (e.g., akeyboard), a user interface (UI) navigation device or cursor controldevice 914 (e.g., a mouse), a disk drive unit 916, a signal generationdevice 918 (e.g., a speaker), and a network interface device 920.

Machine-Readable Medium

The disk drive unit 916 includes a machine-readable medium 922 on whichis stored one or more sets of instructions 924 and data structures(e.g., software instructions) embodying or used by any one or more ofthe methodologies or functions described herein. The instructions 924may also reside, completely or at least partially, within the mainmemory 904 or within the processor 902 during execution thereof by thecomputer system 900, the main memory 904 and the processor 902 alsoconstituting machine-readable media.

While the machine-readable medium 922 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, or associated caches and servers) that store the one or moreinstructions. The term “machine-readable medium” shall also be taken toinclude any tangible medium that is capable of storing, encoding, orcarrying instructions for execution by the machine and that cause themachine to perform any one or more of the methodologies of embodimentsof the present invention, or that is capable of storing, encoding, orcarrying data structures used by or associated with such instructions.The term “machine-readable medium” shall accordingly be taken toinclude, but not be limited to, solid-state memories and optical andmagnetic media. Specific examples of machine-readable media includenon-volatile memory, including by way of example semiconductor memorydevices (e.g., Erasable Programmable Read-Only Memory (EPROM),Electrically Erasable Programmable Read-Only Memory (EEPROM), and flashmemory devices); magnetic disks such as internal hard disks andremovable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

Transmission Medium

The instructions 924 may further be transmitted or received over acommunications network 926 using a transmission medium via the networkinterface device 920 and utilizing any one of a number of well-knowntransfer protocols (e.g., HTTP). Examples of communication networksinclude a local area network (LAN), a wide area network (WAN), theInternet, mobile telephone networks, Plain Old Telephone (POTS)networks, and wireless data networks (e.g., WiFi and WiMax networks).The term “transmission medium” shall be taken to include any intangiblemedium that is capable of storing, encoding, or carrying instructionsfor execution by the machine, and includes digital or analogcommunications signals or other intangible medium to facilitatecommunication of such software.

Although an overview of the inventive subject matter has been describedwith reference to specific example embodiments, various modificationsand changes may be made to these embodiments without departing from thebroader spirit and scope of embodiments of the present invention. Suchembodiments of the inventive subject matter may be referred to herein,individually or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any single invention or inventive concept if more thanone is, in fact, disclosed.

The embodiments illustrated herein are described in sufficient detail toenable those skilled in the art to practice the teachings disclosed.Other embodiments may be used and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. The Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the, appended claims, along withthe full range of equivalents to which such claims are entitled.

Moreover, plural instances may be provided for resources, operations, orstructures described herein as a single instance. Additionally,boundaries between various resources, operations, modules, engines, anddata stores are somewhat arbitrary, and particular operations areillustrated in a context of specific illustrative configurations. Otherallocations of functionality are envisioned and may fall within a scopeof various embodiments of the present invention. In general, structuresand functionality presented as separate resources in the exampleconfigurations may be implemented as a combined structure or resource.Similarly, structures and functionality presented as a single resourcemay be implemented as separate resources. These and other variations,modifications, additions, and improvements fall within a scope ofembodiments of the present invention as represented by the appendedclaims. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense.

1. A computer-implemented method to provide multi-directional visualbrowsing, the method comprising: obtaining a primary result and aperipheral result associated with a user of a client device, the primaryresult based on a search criteria; generating a display layout based onattributes associated with the primary result and the peripheral result,the display layout positioning the primary result in a predeterminedlocation of a multi-directional visual browser display and positioningthe peripheral results in proximity to the primary results based on theattributes; formatting rendering and display instructions, the renderingand display instructions to cause the client device to render thedisplay layout; and transmitting the rendering and display instructionsto the client device.
 2. The computer-implemented method of claim 1,wherein the obtaining of the primary result comprises performing akeyword search.
 3. The computer-implemented method of claim 1, whereinthe obtaining of the primary result comprises performing an image datasearch.
 4. The computer-implemented method of claim 1, wherein theobtaining of the primary result comprises determining one or more listsassociated with a user of the client device.
 5. The computer-implementedmethod of claim 1, wherein the obtaining of the peripheral resultcomprises determining attributes of the primary result and discoveringitems or categories having related attributes, the items or categorieshaving related attributes resulting in the peripheral result.
 6. Thecomputer-implemented method of claim 1, wherein the predeterminedlocation is at a center of the multi-directional visual browser display.7. The computer-implemented method of claim 6, wherein the generating ofthe display layout comprises positioning the peripheral result aroundthe predetermined location based on attributes of the peripheral resultand navigation direction constraints.
 8. The computer-implemented methodof claim 1, wherein the display layout is a three-dimensional displaylayout and the generating of the display layout comprises positioning atleast a part of the primary result in a lower level of thethree-dimensional display layout.
 9. The computer-implemented method ofclaim 1, wherein generating the display layout comprises positioning atleast a part of the peripheral result in a level of a three-dimensionaldisplay layout lower than a main level where the primary result ispositioned.
 10. The computer-implemented method of claim 1, wherein theformatting of the rendering and display instructions further comprisesgenerating navigation control instructions.
 11. The computer-implementedmethod of claim 1, further comprising: receiving a navigational inputfrom the client device; determining a new primary result and a newperipheral result based on the navigational input; and generating a newdisplay layout based on attributes associated with the new primaryresult and the new peripheral result.
 12. A system to providemulti-directional visual browsing, the system comprising: a searchmodule to determine a primary result associated with a user of a clientdevice based on a search criteria; a refinement module to determine aperipheral result associated with the user of the client device; alayout module to generate a display layout based on attributesassociated with the primary result and the peripheral result, thedisplay layout positioning the primary result in a predeterminedlocation of a multi-directional visual browser display and positioningthe peripheral results in proximity to the primary results based on theattributes; and a format module to format rendering and displayinstructions, the rendering and display instructions to cause a clientdevice to render the display layout.
 13. The system of claim 12, whereinthe format module is further configured to transmit the rendering anddisplay instructions to the client device.
 14. The system of claim 12,further comprising a direction input module to receive a navigationalinput from the client device.
 15. A machine-readable storage medium incommunication with at least one processor, the machine-readable storagemedium storing instructions which, when executed by the at least oneprocessor, provides a method to provide multi-directional visualbrowsing, the method comprising: obtaining a primary result and aperipheral result associated with a user of a client device, the primaryresult based on a search criteria; generating a display layout based onattributes associated with the primary result and the peripheral result,the display layout positioning the primary result in a predeterminedlocation of a multi-directional visual browser display and positioningthe peripheral results in proximity to the primary results based on theattributes; formatting rendering and display instructions, the renderingand display instructions to cause the client device to render thedisplay layout; and transmitting the rendering and display instructionsto the client device.
 16. The machine-readable storage medium of claim15, wherein the determining of the peripheral result comprisesdetermining attributes of the primary result and discovering items orcategories having related attributes, the items or categories havingrelated attributes resulting in the peripheral result.
 17. Themachine-readable storage medium of claim 15, wherein the generating ofthe display layout comprises positioning the primary result on a mainlevel of a three-dimensional display layout.
 18. The machine-readablestorage medium of claim 15, wherein the generating of the display layoutcomprises positioning the peripheral result around the predeterminedlocation based on attributes of the peripheral result and navigationdirection constraints.
 19. The machine-readable storage medium of claim15, wherein the formatting of the rendering and display instructionsfurther comprises generating navigation control instructions.
 20. Themachine-readable storage medium of claim 15, wherein the method furthercomprises: receiving a navigational input from the client device;determining a new primary result and a new peripheral result based onthe navigational input; and generating a new display layout based onattributes associated with the new primary result and the new peripheralresult.